带内重启OCP卡后,概率性出现BMC的dhcp ipV6网关丢失问题分析
更新时间: 2026/06/02
在Gitcode上查看源码

问题背景

  • 单板类型:920G;
  • 软件版本:iBMC300 5.12.0.5.B001;
  • 涉及功能:OCP卡,dhcp;
  • 触发条件:OS侧重启OCP卡;
  • 业务表现:预期重启后BMC dhcp ipv6网关正常显示;实际重启后BMC dhcp ipv6网关丢失。

问题复现步骤

网络设置为ipv6,dhcp模式;带内重启OCP网卡。

关键日志信息

app.log信息:

定位过程

  1. 一键收集日志,在app.log中确认问题原因,日志中可看出,来自两个不同channel_id的ncsi控制命令需要修改BMC侧的网络组件属性值,导致两个均失败,并且dhcp获取ipv4和ipv6地址均失败。
  2. 查看network_adapter组件代码,发现每次检查nsci响应有效性的时候,都会重新获取一把id,导致多次响应的时候,该id重复使用在多个不同的进程中:

问题原因

network_adapter组件多线程并发,导致两个协程同时修改同一个环境变量,进而出现校验出错,展现在可感知层面的就是DHCP的网关丢失。

解决方案

将ncsi校验中生成的id修改为ncsi请求中的id,当请求中的id与响应中的id不相等时,报错,退出。

PR链接

gitcode